home *** CD-ROM | disk | FTP | other *** search
/ Creative Computers / Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso / shareware / intuition / reqtools_2.1e / glue / m2amiga / m2amiga_glue.lha / ReqTools.def < prev    next >
Text File  |  1992-08-17  |  23KB  |  642 lines

  1. (* ------------------------------------------------------------------------
  2.   :Program.       ReqTools
  3.   :Contents.      Interface to Nico François' reqtools.library
  4.   :Author.        Kai Bolay [kai] (C-Version by Nico François)
  5.   :Address.       Hoffmannstraße 168
  6.   :Address.       D-7250 Leonberg 1 (Germany)
  7.   :Address.       UUCP: ...!cbmvax!cbmehq!cbmger!depot1!amokle!kai
  8.   :Address.       FIDO: 2:247/706.3
  9.   :History.       v1.0 [kai] 22-Nov-91 (translated from C)
  10.   :History.       v1.0m [Frank Lömker] 24-Feb-92 Umsetzung nach Modula
  11.   :History.       v2.0m [Frank Lömker] 10-Aug-92 ReqTools V38
  12.   :History.                                      ReqToolsBase korrigiert
  13.   :Copyright.     Freeware
  14.   :Language.      Modula-2
  15.   :Translator.    M2Amiga V4.0d
  16.   :Remark.        Thanks to Nico for his great library
  17.   :Bugs.          ReqTools/Arq should support each other
  18.   :Bugs.          Font-Hook: ta.name can contain odd pointer :-(
  19. ------------------------------------------------------------------------ *)
  20.  
  21. (*
  22. **  Filename: reqtools.def
  23. **  Release: 2.0
  24. **
  25. **  Modula interface.
  26. **
  27. **  (C) Copyright 1991/1992 Nico François
  28. **      All Rights Reserved
  29. *)
  30.  
  31. DEFINITION MODULE ReqTools{"reqtools.library",38};
  32.  
  33. FROM IntuitionD IMPORT IntuitionBasePtr,WindowPtr,ScreenPtr,NewWindow;
  34. FROM GraphicsD IMPORT GfxBasePtr,TextFontPtr,TextAttr;
  35. FROM DosD IMPORT DosLibraryPtr;
  36. FROM ExecD IMPORT Library,LibraryPtr;
  37. FROM SYSTEM IMPORT ADDRESS,SHORTSET,LONGSET,BPTR;
  38. FROM UtilityD IMPORT HookPtr,TagItem,TagItemPtr,Tag,tagUser;
  39.  
  40. TYPE STRPTR=ADDRESS;
  41. CONST
  42.   ReqToolsName = "reqtools.library";
  43.   ReqToolsVersion = 38;
  44.  
  45. TYPE
  46.   ReqToolsBasePtr = POINTER TO ReqToolsBase;
  47.  
  48. VAR reqToolsVersion:INTEGER;
  49.     reqToolsBase:ReqToolsBasePtr;
  50.  
  51. TYPE
  52.   ReqToolsBase = RECORD
  53.     libNode: Library;
  54.     flags: SHORTSET;
  55.     pad1,pad2,pad3:SHORTINT;
  56.     segList: BPTR;
  57.     (* The following library bases may be read and used by your program *)
  58.     intuitionBase: IntuitionBasePtr;
  59.     gfxBase: GfxBasePtr;
  60.     dosBase: DosLibraryPtr;
  61.     (* Next two library bases are only (and always) valid on Kickstart 2.0!
  62.        (1.3 version of reqtools also initializes these when run on 2.0) *)
  63.     gadToolsBase: LibraryPtr;
  64.     utilityBase: LibraryPtr;
  65.   END;
  66.  
  67. CONST
  68.   (* types of requesters, for AllocRequestA() *)
  69.   TypeFileReq       = 0;
  70.   TypeReqInfo       = 1;
  71.   TypeFontReq       = 2;
  72.   TypeScreenModeReq = 3;
  73.  
  74. (***********************
  75. *                      *
  76. *    File requester    *
  77. *                      *
  78. ***********************)
  79.  
  80. (* structure _MUST_ be allocated with AllocRequest() *)
  81.  
  82. TYPE
  83.   FileRequesterPtr = POINTER TO FileRequester;
  84.   FileRequester = RECORD
  85.     reqPos: LONGINT;
  86.     leftOffset: INTEGER;
  87.     topOffset: INTEGER;
  88.     flags: LONGSET;
  89.     (* OBSOLETE IN V38! DON'T USE! *) hook: HookPtr;
  90.     dir: STRPTR;                (* READ ONLY! Change with ChangeReqAttrA()! *)
  91.     matchPat: STRPTR;           (* READ ONLY! Change with ChangeReqAttrA()! *)
  92.     defaultFont: TextFontPtr;
  93.     waitPointer: ADDRESS;
  94.     (* V38 *)
  95.     lockWindow: LONGINT;
  96.     shareIDCMP: LONGINT;
  97.     intuiMsgFunc: HookPtr;
  98.     reserved1: INTEGER;
  99.     reserved2: INTEGER;
  100.     reserved3: INTEGER;
  101.     reqHeight: INTEGER;         (* READ ONLY!  Use RTFI_Height tag! *)
  102.     (* Private data follows! HANDS OFF :-) *)
  103.   END;
  104.  
  105. (* returned by FileRequestA() if multiselect is enabled,
  106.    free list with FreeFileList() *)
  107.  
  108.   FileListPtr = POINTER TO FileList;
  109.   FileList = RECORD
  110.     next: FileListPtr;
  111.     strLen: LONGINT;  (* -1 for directories *)
  112.     name: STRPTR;
  113.   END;
  114.  
  115. (* structure passed to RTFI_FilterFunc callback hook by
  116.    volume requester (see RTFI_VolumeRequest tag) *)
  117.  
  118.   VolumeEntryPtr = POINTER TO VolumeEntry;
  119.   VolumeEntry = RECORD
  120.     type: LONGINT;    (* DLT_DEVICE or DLT_DIRECTORY *)
  121.     name: STRPTR;
  122.   END;
  123.  
  124. (***********************
  125. *                      *
  126. *    Font requester    *
  127. *                      *
  128. ***********************)
  129.  
  130. (* structure _MUST_ be allocated with AllocRequest() *)
  131.  
  132.   FontRequesterPtr = POINTER TO FontRequester;
  133.   FontRequester = RECORD
  134.     reqPos: LONGINT;
  135.     leftOffset: INTEGER;
  136.     topOffset: INTEGER;
  137.     flags: LONGSET;
  138.     (* OBSOLETE IN V38! DON'T USE! *) hook: HookPtr;
  139.     attr: TextAttr;  (* READ ONLY! *)
  140.     defaultFont: TextFontPtr;
  141.     waitPointer: ADDRESS;
  142.     (* V38 *)
  143.     lockWindow: LONGINT;
  144.     shareIDCMP: LONGINT;
  145.     intuiMsgFunc: HookPtr;
  146.     reserved1: INTEGER;
  147.     reserved2: INTEGER;
  148.     reserved3: INTEGER;
  149.     reqHeight: INTEGER;         (* READ ONLY!  Use RTFI_Height tag! *)
  150.     (* Private data follows! HANDS OFF :-) *)
  151.   END;
  152.  
  153. (*************************
  154. *                        *
  155. *  ScreenMode requester  *
  156. *                        *
  157. *************************)
  158.  
  159. (* structure _MUST_ be allocated with rtAllocRequest() *)
  160.  
  161.   ScreenModeRequesterPtr = POINTER TO ScreenModeRequester;
  162.   ScreenModeRequester = RECORD
  163.     reqPos: LONGINT;
  164.     leftOffset: INTEGER;
  165.     topOffset: INTEGER;
  166.     flags: LONGSET;
  167.     private1: LONGINT;
  168.     displayID: LONGINT;         (* READ ONLY! *)
  169.     displayWidth: INTEGER;      (* READ ONLY! *)
  170.     displayHeight: INTEGER;     (* READ ONLY! *)
  171.     defaultFont: TextFontPtr;
  172.     waitPointer: ADDRESS;
  173.     lockWindow: LONGINT;
  174.     shareIDCMP: LONGINT;
  175.     intuiMsgFunc: HookPtr;
  176.     reserved1: INTEGER;
  177.     reserved2: INTEGER;
  178.     reserved3: INTEGER;
  179.     reqHeight: INTEGER;         (* READ ONLY!  Use RTFI_Height tag! *)
  180.     displayDepth: INTEGER;
  181.     overscanType: INTEGER;
  182.     autoScroll: LONGINT;
  183.     (* Private data follows! HANDS OFF :-) *)
  184.   END;
  185.  
  186. (***********************
  187. *                      *
  188. *    Requester Info    *
  189. *                      *
  190. ***********************)
  191.  
  192.   (* for EZRequestA(), GetLongA(), GetStringA() and PaletteRequestA(),
  193.    _MUST_ be allocated with AllocRequest() *)
  194.  
  195.   ReqInfoPtr = POINTER TO ReqInfo;
  196.   ReqInfo = RECORD
  197.     reqPos: LONGINT;
  198.     leftOffset: INTEGER;
  199.     topOffset: INTEGER;
  200.     width: LONGINT;              (* not for EZRequestA() *)
  201.     reqTitle: STRPTR;            (* currently only for EZRequestA() *)
  202.     flags: LONGSET;
  203.     defaultFont: TextFontPtr;    (* currently only for PaletteRequestA() *)
  204.     waitPointer: ADDRESS;
  205.     (* V38 *)
  206.     lockWindow: LONGINT;
  207.     shareIDCMP: LONGINT;
  208.     intuiMsgFunc: HookPtr;
  209.     (* structure may be extended in future *)
  210.   END;
  211.  
  212. (***********************
  213. *                      *
  214. *     Handler Info     *
  215. *                      *
  216. ***********************)
  217.  
  218. (* for ReqHandlerA(), will be allocated for you when you use
  219.    the ReqHandler tag, never try to allocate this yourself! *)
  220.  
  221.   HandlerInfoPtr = POINTER TO HandlerInfo;
  222.   HandlerInfo = RECORD
  223.     private1: LONGINT;
  224.     waitMask: LONGSET;
  225.     doNotWait: LONGINT (* LONGBOOL *); (* ? *)
  226.     (* Private data follows, HANDS OFF :-) *)
  227.   END;
  228.  
  229. (* possible return codes from ReqHandlerA() *)
  230. CONST
  231.   CallHandler = 080000000H;
  232.  
  233.  
  234. (*************************************
  235. *                                    *
  236. *                TAGS                *
  237. *                                    *
  238. *************************************)
  239.  
  240.   TagBase = tagUser;
  241.  
  242.   (*** tags understood by most requester functions ***)
  243.    (* optional pointer to window *)
  244.   Window = TagBase+1;
  245.    (* idcmp flags requester should abort on (useful for IDCMP_DISKINSERTED) *)
  246.   IDCMPFlags = TagBase+2;
  247.    (* position of requester window (see below) - default REQPOS_POINTER *)
  248.   ReqPos = TagBase+3;
  249.    (* signal mask to wait for abort signal *)
  250.   LeftOffset = TagBase+4;
  251.    (* topedge offset of requester relative to position specified by ReqPos *)
  252.   TopOffset = TagBase+5;
  253.    (* name of public screen to put requester on (Kickstart 2.0 only!) *)
  254.   PubScrName = TagBase+6;
  255.    (* address of screen to put requester on *)
  256.   Screen = TagBase+7;
  257.    (* tagdata must hold the address of (!) an APTR variable *)
  258.   DoReqHandler = TagBase+8;
  259.    (* font to use when screen font is rejected, _MUST_ be fixed-width font!
  260.     (struct TextFont *, not struct TextAttr *!)
  261.     - default GfxBase->DefaultFont *)
  262.   DefaultFont = TagBase+9;
  263.    (* boolean to set the standard wait pointer in window - default FALSE *)
  264.   WaitPointer = TagBase+10;
  265.   (* (V38) char preceding keyboard shortcut characters (will be underlined) *)
  266.   Un